package com.zx.disneyholidays.utils;

import androidx.fragment.app.Fragment;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * Created by Travis on 2017/8/31 上午10:50.
 *
 * @author Travis.Su
 * <p>
 * 申请权限注解，由于{@link androidx.core.app.ActivityCompat#requestPermissions} 需要activity作为参数，
 * 因此添加该注解的方法所属类需要为{@link android.app.Activity}、{@link android.app.Fragment}或{@link Fragment}，
 * 或在方法参数有对应类型参数
 * <p>
 * 注：如果对应方法有返回值，在权限未授予的情况下默认返回值为null或者0，根据具体返回类型而定
 */

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Permissions {
    /**
     * 需要申请的权限
     *
     * @return
     */
    String[] value();

    int id() default 1;

    /**
     * 如果用户授权成功后是否继续运行相关函数
     * 注：用户授权为异步过程
     *
     * @return
     */
    boolean continueAfterGranted() default false;
}
